using System.Collections.Generic;
using GoldenBicycleCompany.Core;
using GoldenBicycleCompany.ApplicationServices.ViewModels;
using GoldenBicycleCompany.Core.QueryDtos;
 

namespace GoldenBicycleCompany.ApplicationServices
{
    public interface IBicycleManagementService
    {
        BicycleFormViewModel CreateFormViewModel();
        BicycleFormViewModel CreateFormViewModelFor(int bicycleId);
        BicycleFormViewModel CreateFormViewModelFor(Bicycle bicycle);
        Bicycle Get(int id);
        IList<Bicycle> GetAll();
        IList<BicycleDto> GetBicycleSummaries();
        ActionConfirmation SaveOrUpdate(Bicycle bicycle);
        ActionConfirmation UpdateWith(Bicycle bicycleFromForm, int idOfBicycleToUpdate);
        ActionConfirmation Delete(int id);
    }
}
